package cn.juque.jdfsystem.task;

import cn.hutool.core.util.ArrayUtil;
import cn.juque.common.constants.StringConstants;
import cn.juque.common.constants.YesOrNoEnum;
import cn.juque.jdfsystem.cache.FileInfoCache;
import cn.juque.jdfsystem.entity.FileInfo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author juque
 * @version 1.0.0
 * <ul>
 *     <li>FileChangeTask</li>
 * </ul>
 * @date 2023-01-14 00:08:55
 **/
@Service("fileChangeTask")
public class FileChangeTask extends AbstractTask {

    @Resource
    private FileInfoCache fileInfoCache;

    /**
     * 任务逻辑
     *
     * @param args 参数
     */
    @Override
    public void execute(String[] args) {
        if (ArrayUtil.isEmpty(args)) {
            return;
        }
        // 约定开始的都是有效，出现逗号后，的是无效
        boolean valid = true;
        FileInfo fileInfo;
        for (String fileId : args) {
            if (StringConstants.COMMA.equals(fileId)) {
                valid = false;
                continue;
            }
            fileInfo = this.fileInfoCache.getFileInfo(fileId);
            if (null != fileInfo) {
                fileInfo.setValidFlag(valid ? YesOrNoEnum.YES.getCode() : YesOrNoEnum.NO.getCode());
            }
        }
    }

    /**
     * 设置随机休眠等待最大时长 单位：秒
     *
     * @return 秒
     */
    @Override
    protected Integer initSleepTimes() {
        return null;
    }

    @Override
    protected String getTaskName() {
        return "FileChangeTask";
    }
}
